package org.jsola.contract.provider;

import org.jsola.message.dto.ShortMessageDTO;
import org.jsola.message.dto.WeiXinDTO;
import org.jsola.message.vo.WeixinTempSendLogVO;
import org.jsola.user.core.TokenUser;

import java.util.List;

/**
 * 短信,邮件发送
 *
 * @author zxy
 */
public interface IMessageProviderService {


    /**
     * 发送短信
     *
     * @param shortMessageDTO 短信参数
     * @param tokenUser       当前用户
     * @return 发送
     */
    boolean sendShortMessage(ShortMessageDTO shortMessageDTO, TokenUser tokenUser);

    /**
     * 校验验证码
     * @param shortMessageDTO 验证码
     * @param tokenUser 当前用户
     * @return 是否正确
     */
    boolean verifyCaptcha(ShortMessageDTO shortMessageDTO, TokenUser tokenUser);

    /**
     * 推送微信模板消息
     *
     * @param weiXinDTO 微信公众号模板消息参数
     * @param tokenUser 登录用户信息
     */
    void sendWeChatTempMessage(WeiXinDTO weiXinDTO, TokenUser tokenUser);

    /**
     * 群发推送微信模板消息
     *
     * @param weiXinDTO 微信公众号模板消息参数
     * @param tokenUser 登录用户信息
     * @return 验证码是否正确
     */
    List<WeixinTempSendLogVO> batchSendWeChatTempMessage(WeiXinDTO weiXinDTO, TokenUser tokenUser);

}
